/*
package com.office.utils.excel;

import com.office.dataobject.BusinessExcelCompany;
import com.office.utils.DBUtils;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.util.StringUtils;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import static org.apache.poi.ss.usermodel.CellType.*;

*/
/**
 * excel工具类
 * <p>
 * 读取Excel表格表头的内容
 *
 * @param
 * @return String 表头内容的数组
 * <p>
 * 读取Excel数据内容
 * @param
 * @return Map 包含单元格数据内容的Map对象
 * <p>
 * 获取单元格数据内容为字符串类型的数据
 * @param cell Excel单元格
 * @return String 单元格数据内容
 * <p>
 * 获取单元格数据内容为日期类型的数据
 * @param cell Excel单元格
 * @return String 单元格数据内容
 * <p>
 * 根据XSSFCell类型设置数据
 * @param cell
 * @return 读取Excel表格表头的内容
 * @param
 * @return String 表头内容的数组
 * <p>
 * 读取Excel数据内容
 * @param
 * @return Map 包含单元格数据内容的Map对象
 * <p>
 * 获取单元格数据内容为字符串类型的数据
 * @param cell Excel单元格
 * @return String 单元格数据内容
 * <p>
 * 获取单元格数据内容为日期类型的数据
 * @param cell Excel单元格
 * @return String 单元格数据内容
 * <p>
 * 根据XSSFCell类型设置数据
 * @param cell
 * @return
 *//*

public class ExcelUtils {

    private POIFSFileSystem fs;
    //2003版本excel
    //private HSSFWorkbook wb;
    //private HSSFSheet sheet;
    //private HSSFRow row;

    //2007版本excel
    private XSSFWorkbook wb;
    private XSSFSheet sheet;
    private XSSFRow row;

    public static void main(String[] args) {
        try {
            InputStream is = new FileInputStream("C:\\Users\\Administrator.USER-20191109WV\\Desktop\\资料\\4月到期客户.xlsx");
            ExcelUtils excelReader = new ExcelUtils();
            String[] title = excelReader.readExcelTitle(is);
            System.out.println("获得Excel表格的标题:");
            for (String s : title) {
                System.out.print(s + " ");
            }

            InputStream is2 = new FileInputStream("C:\\Users\\Administrator.USER-20191109WV\\Desktop\\资料\\4月到期客户.xlsx");
            Map<Integer, String> map = excelReader.readExcelContent(is2);
            System.out.println(map.size() + "-----------------");
            System.out.println("获得Excel表格的内容:");
            //Connection connection = DBUtil.getConnection();

            for (int i = 1; i <= map.size(); i++) {
                System.out.println(map.get(i));
                String[] result = map.get(i).split(",");
                for (int x = 0; x < result.length; x++) {
                    if (result[x].equals("")) {
                        result[x] = null;
                    }
                }
                BusinessExcelCompany excelCompany = new BusinessExcelCompany();
                excelCompany.setCompanyName(result[4]);
                excelCompany.setContactsUser(result[5] == null ? "未知" : result[5]);
                excelCompany.setPhone(result[6]);
                String mailList = "客户" + result[4] + excelCompany.getContactsUser().substring(0, 1) + "总";

                excelCompany.setMailList(mailList
                        .replace("深圳市", "")
                        .replace("深圳", "")
                        .replace("有限公司", "")
                        .replace("先生", "")
                        .replace("小姐", "")
                        .replace("经理", "")
                        .replace("女士", "")
                        .replace("老师", "")
                        .replace("教练", "")
                );
                if (null != excelCompany.getPhone() && excelCompany.getPhone().length() == 11) {
                    DBUtils.insertExcelTable(excelCompany);
                }

            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    */
/**
 * 读取Excel表格表头的内容
 *
 * @param
 * @return String 表头内容的数组
 *//*

    public String[] readExcelTitle(InputStream is) {
        try {
            // fs = new POIFSFileSystem(is);
            //wb = new HSSFWorkbook(fs);
            wb = new XSSFWorkbook(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        sheet = wb.getSheetAt(0);
        row = sheet.getRow(0);
        // 标题总列数
        int colNum = row.getPhysicalNumberOfCells();
        System.out.println("colNum:" + colNum);
        String[] title = new String[colNum];
        for (int i = 0; i < colNum; i++) {
            title[i] = getCellFormatValue(row.getCell(i));
        }
        return title;
    }

    */
/**
 * 读取Excel数据内容
 *
 * @param
 * @return Map 包含单元格数据内容的Map对象
 *//*

    public Map<Integer, String> readExcelContent(InputStream is) {
        Map<Integer, String> content = new HashMap<Integer, String>();
        String str = "";
        try {
            wb = new XSSFWorkbook(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        sheet = wb.getSheetAt(0);
        // 得到总行数
        int rowNum = sheet.getLastRowNum();
        row = sheet.getRow(0);
        int colNum = row.getPhysicalNumberOfCells();
        // 正文内容应该从第二行开始,第一行为表头的标题
        for (int i = 1; i <= rowNum; i++) {
            row = sheet.getRow(i);
            if (row == null) {
                continue;
            }else if(StringUtils.isEmpty(row.getCell(0))&& StringUtils.isEmpty(row.getCell(2))){
                continue;
            } else {
                int j = 0;
                while (j < colNum - 1) {
                    str += getCellFormatValue(row.getCell((short) j)).trim() + ",";
                    j++;
                }
                content.put(i, str);
                str = "";
            }
        }
        return content;
    }

    */
/**
 * 获取单元格数据内容为字符串类型的数据
 *
 * @param cell Excel单元格
 * @return String 单元格数据内容
 *//*

    private String getStringCellValue(XSSFCell cell) {
        String strCell = "";
        switch (cell.getCellType()) {
            case STRING:
                strCell = cell.getStringCellValue();
                break;
            case NUMERIC:
                strCell = String.valueOf(cell.getNumericCellValue());
                break;
            case BOOLEAN:
                strCell = String.valueOf(cell.getBooleanCellValue());
                break;
            case BLANK:
                strCell = "";
                break;
            default:
                strCell = "";
                break;
        }
        if (strCell.equals("") || strCell == null) {
            return "";
        }
        if (cell == null) {
            return "";
        }
        return strCell;
    }

    */
/**
 * 获取单元格数据内容为日期类型的数据
 *
 * @param cell Excel单元格
 * @return String 单元格数据内容
 *//*

    private String getDateCellValue(XSSFCell cell) {
        String result = "";
        try {
            if (cell.getCellType() == NUMERIC) {
                Date date = cell.getDateCellValue();
                result = (date.getYear() + 1900) + "-" + (date.getMonth() + 1)
                        + "-" + date.getDate();
            } else if (cell.getCellType() == STRING) {
                String date = getStringCellValue(cell);
                result = date.replaceAll("[年月]", "-").replace("日", "").trim();
            } else if (cell.getCellType() == BLANK) {
                result = "";
            }
        } catch (Exception e) {
            System.out.println("日期格式不正确!");
            e.printStackTrace();
        }
        return result;
    }

    */
/**
 * 根据XSSFCell类型设置数据
 *
 * @param cell
 * @return
 *//*

    private String getCellFormatValue(XSSFCell cell) {
        String cellvalue = "";
        if (cell != null && cell.getCellType() != null) {
            // 判断当前Cell的Type
            switch (cell.getCellType()) {
                // 如果当前Cell的Type为NUMERIC
                case NUMERIC:

                case FORMULA: {
                    // 判断当前的cell是否为Date
                   */
/* if (null!=cell){
                        if (HSSFDateUtil.isCellDateFormatted(cell)) {
                            Date date = cell.getDateCellValue();
                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                            cellvalue = sdf.format(date);

                        }*//*

                    // 如果是纯数字
                    //else {
                    // 取得当前Cell的数值
                    cellvalue = String.valueOf(cell.getNumericCellValue());
                    DateFormat format = new SimpleDateFormat("YYYY-MM-dd");
                    if (HSSFDateUtil.isCellDateFormatted(cell)) {
                        // 是否为日期型
                        cellvalue = format.format(cell.getDateCellValue());
                    } else {
                        // 是否为数值型
                        double d = cell.getNumericCellValue();
                        if (d - (int) d < Double.MIN_VALUE) {
                            // 是否为int型
                            cellvalue = Integer.toString((int) d);
                        } else {
                            System.out.println("double.....");
                            // 是否为double型
                            DecimalFormat df = new DecimalFormat("#");
                            cellvalue = df.format(cell.getNumericCellValue());
                        }
                    }
                      */
/*  }
                    }*//*


                    break;
                }
                // 如果当前Cell的Type为STRIN
                case STRING:
                    // 取得当前的Cell字符串
                    cellvalue = cell.getRichStringCellValue().getString();
                    break;
                case ERROR:
                    cellvalue = "错误";
                    break;
                // 默认的Cell值
                default:
                    cellvalue = " ";
            }
        } else {
            cellvalue = "";
        }
        return cellvalue;

    }
}


*/
